#ifndef VAISSEAU_H
#define VAISSEAU_H

#include <vector>
#include <SDL/SDL.h>
#include <iostream>
#include "Shoot.h"
#include "Trace.h"
#include "Life.h"
#include "Explosion.h"

using namespace std;

class Vaisseau {
    public:
//        Vaisseau();
        Vaisseau(double x, double y, double largeur, double hauteur);
        virtual ~Vaisseau();

        virtual void Dessiner() {};
        void Deplacer(int largeurWin, int hauteurWin);
        void setAngle();
        void PurgeMissile(double largeur, double hauteur);
        void Tirer(SDLKey pushedKey = SDLK_SPACE);
        void touchee();
        void PurgeTrace();

        // Accesseur
        double getX();
        double getY();
        double getLargeur();
        double getHauteur();
        vector<Shoot*> getShoots();
        Life* getLifeBar();

        virtual void goRight() {};
        virtual void goLeft() {};
        virtual void accelerateur() {};
        virtual void frein() {};

//        void getType();
//        static const string TYPE;

    protected:
        double x;
        double y;
        double vitesse;
        double largeur;
        double hauteur;
        double angle;

        vector<Shoot*> lstShoot;
        vector<Explosion*> lstExplosion;
        vector<Trace*> propulseur;
        Life *lifeBar;
};

//const string Vaisseau::TYPE = "VAISSEAU";

#endif // VAISSEAU_H
